﻿#pragma once

#include "World/BlockModel.h"

#include <cstdint>

struct Block
{
  using ID = uint16_t;

  enum class RenderType : uint8_t
  {
    Air,
    Opaque,
    Transparent,
    SemiTransparent,
  };

  enum class BlockModelType : uint8_t
  {
    Full,
    NotFull,
    Luqid,
  };

  std::string name{""};
  RenderType renderClass{RenderType::Air};
  BlockModelType modelType{BlockModelType::Full};
  glm::vec4 color{1.0f, 1.0f, 1.0f, 0.0f};
  Ref<BlockModel> model{nullptr};
  uint8_t lightLevel{0};

  operator bool() const { return !name.empty(); }
};